Use case: Write and read operations ¶
Sequence diagram ¶
Code snippet ¶
|
HAL1 |
HAL2 |
|---|---|
/* - */
/* Write data operation */
HAL_SDRAM_Write_8b(&hsdram,
(uint32_t *)(device_address),
data_to_write,
BufferSize
);
/* Read data operation */
HAL_SDRAM_Read_8b(&hsdram,
(uint32_t *)(device_address),
data_read,
BufferSize
);
|
uint32_t size;
uint8_t *psdramaddress = (uint8_t *)device_address;
uint8_t *psrcbuff = data_to_write;
uint8_t *pdestbuff = data_read;
/* Write data to memory */
for (size = BufferSize; size != 0U; size--)
{
*psdramaddress = *psrcbuff;
psrcbuff++;
psdramaddress++;
}
/* Read data from memory */
for (size = BufferSize; size != 0U; size--)
{
*pdestbuff = *psdramaddress;
pdestbuff++;
psdramaddress++;
}
|
Key changes ¶
HAL2 removes SDRAM read/write APIs because SDRAM is memory mapped.
Data accesses are performed directly through memory read/write operations.

